সি++ এ পয়েন্টার দিয়ে ভেরিয়েবলের মেমোরি অ্যাড্রেস ধারণ করার জন্য &
(address-of) অপারেটর ব্যবহার করা হয়। পয়েন্টার নিজে কোনো ডেটা মান ধারণ না করে, বরং একটি ভেরিয়েবলের মেমোরি ঠিকানা (address) ধারণ করে। পয়েন্টারের মাধ্যমে ভেরিয়েবলের মেমোরি ঠিকানায় সরাসরি অ্যাক্সেস করা যায়, যা প্রোগ্রামের কার্যকারিতা বাড়াতে সাহায্য করে।
#include <iostream>
using namespace std;
int main() {
int num = 42; // একটি পূর্ণসংখ্যা ভেরিয়েবল 'num' যার মান 42
int* ptr = # // 'num' এর ঠিকানা 'ptr' পয়েন্টারে সংরক্ষণ করা হচ্ছে
// বিভিন্ন আউটপুট প্রদর্শন করা হচ্ছে
cout << "Value of num: " << num << endl; // ভেরিয়েবলের মান প্রদর্শন করা হচ্ছে
cout << "Address of num: " << &num << endl; // 'num' এর ঠিকানা প্রদর্শন করা হচ্ছে
cout << "Pointer ptr: " << ptr << endl; // পয়েন্টারের মান প্রদর্শন করা হচ্ছে (যা 'num' এর ঠিকানা)
cout << "Value at address ptr: " << *ptr << endl; // পয়েন্টারের মাধ্যমে 'num' এর মান প্রদর্শন করা হচ্ছে
return 0;
}
ভেরিয়েবল num
:
num
একটি পূর্ণসংখ্যা ভেরিয়েবল, যার মান 42
।পয়েন্টার ptr
:
int* ptr = #
- এখানে ptr
একটি পয়েন্টার যা num
ভেরিয়েবলের মেমোরি ঠিকানা ধারণ করে।&num
ব্যবহার করে num
এর ঠিকানা পাওয়া যায় এবং তা ptr
তে সংরক্ষণ করা হয়।Dereference Operator (*
):
*ptr
ব্যবহার করে ptr
পয়েন্টারে যে ঠিকানা রয়েছে, সেই ঠিকানায় থাকা মূল মানটি অ্যাক্সেস করা যায়।*ptr
ব্যবহার করলে num
এর মান ৪২ পাওয়া যাবে, কারণ ptr
num
এর ঠিকানা ধারণ করছে।Value of num: 42
Address of num: 0x7ffeec123456 // 'num' এর মেমোরি ঠিকানা
Pointer ptr: 0x7ffeec123456 // 'ptr' পয়েন্টারে থাকা 'num' এর ঠিকানা
Value at address ptr: 42 // 'ptr' পয়েন্টার দ্বারা নির্দেশিত মান
বিঃদ্রঃ মেমোরি ঠিকানা (যেমন 0x7ffeec123456
) প্রতিবার প্রোগ্রাম চালানোর সময় আলাদা হতে পারে।
সি++ এ পয়েন্টার দিয়ে ভেরিয়েবলের ঠিকানা ধারণ করা একটি গুরুত্বপূর্ণ কৌশল, যা প্রোগ্রামারদেরকে সরাসরি মেমোরি অ্যাক্সেস করতে এবং প্রোগ্রামের কার্যকারিতা বাড়াতে সহায়তা করে। পয়েন্টার ব্যবহারে *
এবং &
অপারেটর ব্যবহার করে ভেরিয়েবলের মান ও ঠিকানা অ্যাক্সেস করা যায়।
common.read_more